﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ConsoleApplication1.Negocios
{
    public class RedesNeurais
    {
        public List<Double> treina(Double desejado, Double txAprendizagem, List<Double> pesos, List<Double>entradas)
        {
            Double u =0;
            Double resultadoAnt = 0;
            for (int i = 0; i < pesos.Count; i++)
            {
                u += pesos[i] * entradas[i];
            }

            if (u >= 0) resultadoAnt = 1;
            else resultadoAnt = -1;

            if (!desejado.Equals(resultadoAnt))
            {

                for (int i = 0; i < pesos.Count; i++)
                {
                    pesos[i] = pesos[i] + (txAprendizagem * (desejado - resultadoAnt)) * entradas[i];
                }

                pesos = treina(desejado, txAprendizagem, pesos, entradas);

            }
            //else
            //{
            //    pesos.Add(resultadoAnt);
            //}

            
            return pesos;
               
        }

        public Boolean testar(List<Double> pesos, List<Double> entradas, Double desejado)
        {
            Double u = 0;
            Double resultado = 0;
            for (int i = 0; i < pesos.Count; i++)
            {
                u += pesos[i] * entradas[i];
            }

            if (u >= 0) resultado = 1;
            else resultado = -1;

            return desejado == resultado;
        }

        public Double classificar(List<Double> pesos, List<Double> entradas)
        {
            Double u = 0;
            Double resultado = 0;
            for (int i = 0; i < pesos.Count; i++)
            {
                u += pesos[i] * entradas[i];
            }

            if (u >= 0) resultado = 1;
            else resultado = -1;

            return resultado;
        }
    }
}